1
灵活设计:表格接口
AI020Lesson 4
00:00

一个灵活系统的基础在于定义一个严格的内部 契约 或接口,要求对象必须遵循。在此情境中,我们定义了一个 表格接口 ,其中每个单元格对象都保证存在三个特定方法: minWidth()minHeight()draw(width, height)

1. 接口契约

通过统一使用这些方法,布局逻辑可以在不了解单个单元格内部数据类型的情况下,计算出全局行列尺寸。这是一个典型的 基于接口的多态性

2. TextCell 实现

TextCell 构造函数通过将字符串拆分为逐行数组来处理原始输入。这将复杂性从渲染阶段转移到了实例化阶段。

this.text = text.split("\n");

3. 确定性绘制

draw(width, height) 方法确保每个单元格输出都能通过 repeat() 辅助函数进行完美填充。这能确保无论内容长度如何,都能保持垂直和水平对齐。

名称乞力马扎罗高度5895列通过计算得出的 minWidth() 对齐

$$\text{填充} = \text{宽度} - \text{行长度}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>